1. Field of the Invention
The invention relates to computer systems and computer software, and more particularly to transaction management in computer systems.
2. Description of the Related Art
Large business systems may include application servers that run multiple applications and/or multiple copies of the same application concurrently. Some or all of these applications may be transaction oriented and may be capable of conducting many transactions simultaneously. Given the potentially large number of data sources, network nodes, transmission devices, etc. involved in multiple, simultaneous transactions, many different types of errors may occur that may interfere with successful transaction completion. Some of these errors may be automatically detectable/correctable by the hardware and software components of the system. For example, a message may become garbled while traversing a network segment and the receiving node may automatically request the message be retransmitted. In another instance, a backend system participating in a global transaction may crash before committing its transaction branch. In this case the manager of the transaction may retain the status of the transaction until the failed backend system is back online. The failed system may request the status of the transaction from the transaction manager and commit the results of its transaction branch. At this point the transaction manager may log the transaction status as completed.
In other cases the detection and correction of errors may require various degrees of manual intervention. A system administrator or administrative program associated with an application server may have access to real time data being logged by a transaction manager. Through examination of transaction logs, the administrator may observe undesirable or erroneous transaction results. For example, a malicious user may attempt to perform transactions with the goal of producing unintended results for the benefit of the user and/or detriment of the vendor. This may include gaining access to unauthorized information, altering account balances or other information stored in a database, and degrading the performance of the vendor's system among numerous other possible effects. Not all instances of transactions producing detrimental effects are the result of maliciousness. Given a large enough pool of users, a certain number of well-intentioned transaction attempts will produce unintended results due solely to the inability of the application program to anticipate all possible user interactions and provide for proper responsive actions.
While monitoring data from transaction logs, an application server administrator may discover anomalous behavior and/or results associated with one or more transactions being executed by a transaction manager. At this point, even though the erroneous transactions may represent only a small fraction of the total number of transactions being processed by the application server, the administrator may be compelled to take remedial action to prevent database corruption or other serious system degradation. Typically such administrative intervention may require taking the application server offline thereby disrupting all transactions in progress and rendering all functions provided by the server unavailable for some period of time. This disruption of service may be extremely inconvenient for users as well as costly for the vendor whose application is now unable to process transactions.